Currently, in order to allow secure access to network servers by clients, network administrators must either install an agent on each of the network servers or use a proxy server on the network to inspect packets traversing between the clients and network servers. In systems that use agents installed on the network servers, the agent may control what commands can be issued or run on the server by the client or otherwise audit the activity on the server. However, installing an agent on each of the network servers is not always possible or practicable in the enterprise context due to the time required to develop and install separate agents on each server. Using a proxy, on the other hand, requires changing network topology in order to accommodate the proxy. In addition, the proxy may be very sensitive to network protocol changes that may occur later on.